An operational IT system produces traces of system's functioning primarily through machine generated plain text logs. These logs contain valuable information useful for system monitoring, debugging and improvement. Unfortunately, without extensive knowledge of working of system, making sense of these logs is an almost impossible task. Furthermore, the volume of logs is typically prohibitive for manual exploration of them.
Machine logs are generated by explicit instructions in source code of system components encoded by the developer in a piece of software governing the working of that component. Hence each log-line can be tracked to a PRINT or equivalent statement in underlying source code, which is a reflection of flow of control and order of execution of code. This information may be labeled as a system ‘state’.